# 作者：薛丰坤
# 2025年06月05日20时53分25秒
# 2634661037@qq.com
class MusicPlayer:
    instance = None

    # cls其实就是类名，下面其实就是类方法,new函数其实是用staticmethod来实现了一个类方法，自己把类名传进来
    # 下面的*args, **kwargs可以直接换成*more
    def __new__(cls, *args, **kwargs):  # 创建和返回一个新的对象就相当于c中的malloc函数,不写new它本身也会调用new，写的目的在于
        if cls.instance is None:  # 现在没有给对象申请空间。
            cls.instance=super().__new__(cls)  # 为对象申请分配空间括号里必须传入cls,申请空间的固定写法

        return cls.instance  # new返回的就是下面player1的地址，必须return回去

    def __init__(self):
        print("音乐播放器初始化")


player1 = MusicPlayer()  # player1接受的东西就是new返回的，也就是说init之前先做了new
player2 = MusicPlayer()
pass